package demo4.controller;

import demo4.mapper.IUserMapper;
import demo4.pojo.Custumer;
import demo4.pojo.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Component;

import java.sql.ResultSet;
import java.util.List;
import java.util.Scanner;

/**
 *Controller 控制器
 * 这个层级的类负责和用户打交道，并将请求将来交给业务层处理，并结合处理结果反馈给用户
 */
@Component
public class UserController {
    @Autowired
    @Qualifier("sun")
    private IUserMapper userMapper;
    public void start(){
//        System.out.println("UserController:开始处理用户请求");
//        System.out.println("UserController:开始处理注册");
//        System.out.println("UserController:获取用户信息.....");
//        userMapper.insert(null);//将数据插入表中
//        System.out.println("UserController:注册成功");//根据持久层对数据库的操作结果给予用户反馈Sc
        Scanner scan=new Scanner(System.in);
        System.out.println("请输入编号:");
        System.out.println("1:用户注册");
        System.out.println("2:用户登录");
        System.out.println("3:用户列表");
        System.out.println("4:修改用户信息");
        int num=scan.nextInt();
        switch (num){
            case 1:
                useReg();
                break;
            case 2:
                useLogin();
                break;
            case 3:
                useList();
                break;
            case 4:
                useUpdate();
                break;
        }
    }
    //处理用户注册
    private void useReg(){
        User user=new User();
        System.out.println("欢迎注册");
        Scanner scan=new Scanner(System.in);
        System.out.println("请输入用户名:");
        user.setUsername(scan.nextLine());
        System.out.println("请输入密码:");
        user.setPassword(scan.nextLine());
        System.out.println("请输入昵称:");
        user.setNickname(scan.nextLine());
        System.out.println("请输入年龄:");
        user.setAge(scan.nextInt());
        System.out.println(user);
        int result =userMapper.insert(user);
        System.out.println(result>0?"注册成功":"注册失败");
    }
    //处理用户登录
    private void useLogin(){
        System.out.println("欢迎登陆");
        Custumer custumer=new Custumer();
        Scanner scan=new Scanner(System.in);
        System.out.println("请输入用户名:");
        custumer.setUsername(scan.nextLine());
        System.out.println("请输入密码:");
        custumer.setPassword(scan.nextLine());
        User user=userMapper.login(custumer);
        if(user!=null){
            System.out.println("登录成功欢迎您回来，"+user.getNickname());
        }else {
            System.out.println("登录失败");
        }


    }
    //列出所有用户
    private void useList(){
        System.out.println("展示用户列表");
        List<User> list=userMapper.selectAll();
        for(User user:list){
            System.out.println(user);
        }
    }
    //处理修改用户信息
    public void useUpdate(){
        /**
         * 1、要求用户输入用户名、新的密码、昵称、年龄
         * 2、将该信息以User对象形式保存
         * 2、调用userMapper的update方法
         */
        Scanner scan=new Scanner(System.in);
        User user=new User();
        System.out.println("请输入用户名:");
        user.setUsername(scan.nextLine());
        System.out.println("请输入新的密码:");
        user.setPassword(scan.nextLine());
        System.out.println("请输入新的昵称:");
        user.setNickname(scan.nextLine());
        System.out.println("请输入新的年龄:");
        user.setAge(scan.nextInt());
        int result=userMapper.update(user);
        System.out.println(result>0?"修改成功":"修改失败");
        System.out.println(user);
    }

}
